package com.gopay.remote.fundcps.service;

import com.gopay.common.exception.FundException;
import com.gopay.common.exception.GopayException;
import com.gopay.remote.fundcps.model.FundCpsGenOrder;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 基金订单表接口
 * @author <a href="mailto:yhwpeng@126.com">wangdong</a>
 * @date 2017-06-16 17:13:18
 */
public interface FundCpsGenOrderService {

	int insert(FundCpsGenOrder record);

	int insertSelective(FundCpsGenOrder record);

	FundCpsGenOrder selectByPrimaryKey(String keyId);

    FundCpsGenOrder selectByGopayOrderId(String gopayOrderId);

    int updateByPrimaryKeySelective(FundCpsGenOrder record);

	int updateByPrimaryKey(FundCpsGenOrder record);

	List<FundCpsGenOrder> listFundOrdersByParam(Map<String,Object> param);

	void checkFundOrderStatus(String custId) throws GopayException;

	/**
	 * 生成快速付款单
	 * @author yhwpeng@126.com
	 * @date 2017-12-26 14:40:49
	 * @params
	 * @param fundCompCode : 基金公司编码
	 * @param startTime :
	 * @param endTime :
	 * @return String
	 */
    String gen02018OrderToFastPay(String fundCompCode, Date startTime,Date endTime) throws FundException;

	/**
	 * 基金活期宝快赎对账
	 * @param fundCompCode
	 * @param startTimeStr
	 * @param endTimeStr
	 * @throws FundException
	 */
    void fundFastRedeemCheckAcct(String fundCompCode, String startTimeStr,String endTimeStr) throws FundException;

	/**
	 * 基金活期宝快赎对账-人工对账
	 * @param gopayOrderId
	 * @throws FundException
	 */
	String fundFastRedeemCheckAcctManHandle(String gopayOrderId);
}